'\" t
.\" Copyright 2000 Sam Varshavchik <mrsam@courier-mta.com>
.\"
.\" SPDX-License-Identifier: Linux-man-pages-copyleft
.\"
.\" References: RFC 2553
.TH inet_ntop 3 2024-05-02 "Linux man-pages 6.9.1"
.SH NAME
inet_ntop \- convert IPv4 and IPv6 addresses from binary to text form
.SH LIBRARY
Standard C library
.RI ( libc ", " \-lc )
.SH SYNOPSIS
.nf
.B #include <arpa/inet.h>
.P
.BI "const char *inet_ntop(int " af ", const void *restrict " src ,
.BI "                      char " dst "[restrict ." size "], socklen_t " size );
.fi
.SH DESCRIPTION
This function converts the network address structure
.I src
in the
.I af
address family into a character string.
The resulting string is copied to the buffer pointed to by
.IR dst ,
which must be a non-null pointer.
The caller specifies the number of bytes available in this buffer in
the argument
.IR size .
.P
.BR inet_ntop ()
extends the
.BR inet_ntoa (3)
function to support multiple address families,
.BR inet_ntoa (3)
is now considered to be deprecated in favor of
.BR inet_ntop ().
The following address families are currently supported:
.TP
.B AF_INET
.I src
points to a
.I struct in_addr
(in network byte order)
which is converted to an IPv4 network address in
the dotted-decimal format, "\fIddd.ddd.ddd.ddd\fP".
The buffer
.I dst
must be at least
.B INET_ADDRSTRLEN
bytes long.
.TP
.B AF_INET6
.I src
points to a
.I struct in6_addr
(in network byte order)
which is converted to a representation of this address in the
most appropriate IPv6 network address format for this address.
The buffer
.I dst
must be at least
.B INET6_ADDRSTRLEN
bytes long.
.SH RETURN VALUE
On success,
.BR inet_ntop ()
returns a non-null pointer to
.IR dst .
NULL is returned if there was an error, with
.I errno
set to indicate the error.
.SH ERRORS
.TP
.B EAFNOSUPPORT
.I af
was not a valid address family.
.TP
.B ENOSPC
The converted address string would exceed the size given by
.IR size .
.SH ATTRIBUTES
For an explanation of the terms used in this section, see
.BR attributes (7).
.TS
allbox;
lbx lb lb
l l l.
Interface	Attribute	Value
T{
.na
.nh
.BR inet_ntop ()
T}	Thread safety	MT-Safe locale
.TE
.SH STANDARDS
POSIX.1-2008.
.SH HISTORY
POSIX.1-2001.
.P
Note that RFC\ 2553 defines a prototype where the last argument
.I size
is of type
.IR size_t .
Many systems follow RFC\ 2553.
glibc 2.0 and 2.1 have
.IR size_t ,
but 2.2 and later have
.IR socklen_t .
.\" 2.1.3: size_t, 2.1.91: socklen_t
.SH BUGS
.B AF_INET6
converts IPv4-mapped IPv6 addresses into an IPv6 format.
.SH EXAMPLES
See
.BR inet_pton (3).
.SH SEE ALSO
.BR getnameinfo (3),
.BR inet (3),
.BR inet_pton (3)
